package com.dragon.modules.yuegou.service.lot;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.common.web.PageRequest;
import com.dragon.modules.yuegou.entity.lot.ActivityEntity;
import com.dragon.modules.yuegou.model.lot.Activity;
import com.dragon.modules.yuegou.model.lot.ActivityDetail;
import com.dragon.modules.yuegou.model.lot.Prize;
import com.dragon.modules.yuegou.model.product.Spu;
import com.dragon.modules.yuegou.query.lot.AcrivityJoinListQuery;
import com.dragon.modules.yuegou.query.lot.ActivityListQuery;
import com.dragon.modules.yuegou.query.product.SpuQuery;

import java.util.List;

/**
 * 抽奖活动表 服务接口
 *
 * @author pbuilder generated
 * @date 2019-10-24 10:22:54
 * @version 2.0
 */
public interface ActivityService extends IService<ActivityEntity> {
	
	/**
	 *分页查询抽奖列表
	 * @param page
	 * @param query
	 * @return
	 */
	 IPage<Activity> searchList(PageRequest page, ActivityListQuery query);
	 
	 /**
	  * 上架限时抽奖活动
	  * @param id
	  */
	 void upperActivity(String id);
	 
	 /**
	  * 下架限时抽奖活动
	  * @param id
	  */
	 void lowerActivity(String id);
	/**
	 * 查询抽奖活动列表
	 * */
	IPage<Activity> search(PageRequest page, String busdId);

	/**
	 * 往期活动列表
	 * */
	IPage<Activity> pastSearch(PageRequest page, String busdId);

	/**
	 * 查询会员详情
	 * */
	Activity getActivity(String id, String memberId);
	
	/**
	 * 创建线上抽奖
	 */
	void createActivity(Activity activity);
	
	/**
	 * 获取奖品列表
	 */
	List<Spu> getPrizeList(SpuQuery query);
	
	/**
	 * 获取奖品信息
	 */
	Prize getPrizeInfo(String spuId);

	/**
	 * 执行活动修改活动状态
	 * */
	void processStatus();

	/**
	 * 线上开奖
	 * */
	void revealed();
	
	/**
	 * 查看抽奖活动详情(数据分析)
	 */
	ActivityDetail getActivityInfo(PageRequest page,AcrivityJoinListQuery query);
	
	/**
	 * 查看线上抽奖活动信息
	 */
	Activity getActivityDetails(String id);
}